// pages/money/money.js
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    add: '', //存放存款项目
    sub: '', //存放债款项目
    addList: [],
    subList: [],
    showTip: false
  },

  // 输入触发
  textarea(e) {
    let type = e.target.dataset.type
    let value = e.detail.value
    if (type == 'add') {
      this.setData({
        add: value
      })
    } else if (type = 'sub') {
      this.setData({
        sub: value
      })
    }
  },

  // 定义一个函数来处理每一个item
  processItem(item, index) {
    // 先去掉两边的空白字符
    let trimmedItem = item.trim();
    let obj = { 
      text: trimmedItem,
      id: index,
      value:0
    }
    let processedItem = obj;
    return processedItem;
  },


  splitValuesBySemicolons: function (value) {
    // 使用正则表达式匹配中文分号和英文分号
    const separatorRegex = /[；;]/g; // 匹配中文分号 `；` 和英文分号 `;`
    // 使用正则表达式分割字符串，并去除每个元素的前后空格
    let valuesArray = value.split(separatorRegex).map((item, index) => this.processItem(item, index));
    //去重
    let uniqueArr = valuesArray.filter((item, index, array) => array.indexOf(item) === index);

    // 输出分割后的数组
    // console.log('分割后的数组:', valuesArray);
    return uniqueArr;
  },

  // 提交按钮
  submit() {
    let add = this.data.add
    let sub = this.data.sub
    let addList = this.splitValuesBySemicolons(add)
    let subList = this.splitValuesBySemicolons(sub)
    this.setData({
      addList: addList,
      subList: subList
    })
    this.addMoneyType(addList, subList)
  },

  // 重置按钮
  origin() {
    let that = this
    wx.showModal({
      title: '确认重置?',
      content: '重置为系统初始数据哦',
      complete: (res) => {
        if (res.cancel) {
          wx.showToast({
            title: '嗯嗯',
            icon: 'none'
          })
        }

        if (res.confirm) {
          that.getMoneyType('origin')
        }
      }
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getMoneyType(wx.getStorageSync('openid'))
  },

  // 获取当前用户的存钱类别
  getMoneyType(openid) {
    wx.cloud.callFunction({
      name: 'nine_thirth',
      config: {
        env: app.globalData.env
      },
      data: {
        cloud_function: "getMoneyType",
        openid: openid,
      }
    }).then((resp) => {
      console.log("信息：", resp)
      let data = resp.result.data
      if (data.status == 200) {
        let isNull = data.data.isNull
        if (isNull) {
          this.setData({
            showTip: true
          })
          this.getMoneyType('origin')
        } else {
          let addList = data.data.result[0].add
          let subList = data.data.result[0].sub
          // 提取 addList 中每个对象的 text 字段，并连接成一个字符串
          const addTexts = addList.map(item => item.text).join('; ');

          // 提取 subList 中每个对象的 text 字段，并连接成一个字符串
          const subTexts = subList.map(item => item.text).join('; ');
          this.setData({
            add:addTexts,
            sub:subTexts
          })
        }
        // let orderDetail = resp.result.data.data
        // this.setData({
        //   orderDetail: orderDetail
        // })
        wx.showToast({
          title: data.message,
          icon: 'none'
        })
      }
    }).catch((e) => {
      console.error('获取数据失败:', e);
    });
  },

  // 添加当前用户的存钱类别
  addMoneyType(addList, subList) {
    wx.cloud.callFunction({
      name: 'nine_thirth',
      config: {
        env: app.globalData.env
      },
      data: {
        cloud_function: "addMoneyType",
        openid: wx.getStorageSync('openid'),
        add: addList,
        sub: subList,
      }
    }).then((resp) => {
      console.log("信息：", resp)
      let data = resp.result.data
      if (data.status == 200) {
        wx.showToast({
          title: data.message,
          icon: 'none'
        })
      }
    }).catch((e) => {
      console.error('获取数据失败:', e);
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})